package com.wenx.v3system.modular.platform.domain.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wenx.base.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.util.Date;

/**
 * 平台租户实体
 * 
 * @author wenx
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("platform_tenant")
public class PlatformTenant extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 租户唯一编码
     */
    @TableField("code")
    private String code;

    /**
     * 租户名称
     */
    @TableField("name")
    private String name;

    /**
     * 租户域名
     */
    @TableField("domain")
    private String domain;

    /**
     * 租户Logo URL
     */
    @TableField("logo")
    private String logo;

    /**
     * 租户描述
     */
    @TableField("description")
    private String description;

    /**
     * 联系人姓名
     */
    @TableField("contact_name")
    private String contactName;

    /**
     * 联系人邮箱
     */
    @TableField("contact_email")
    private String contactEmail;

    /**
     * 联系人电话
     */
    @TableField("contact_phone")
    private String contactPhone;

    /**
     * 联系地址
     */
    @TableField("address")
    private String address;

    /**
     * 租户状态：1-正常，2-试用，3-暂停，4-过期，0-禁用
     */
    @TableField("status")
    private Integer status;

    /**
     * 套餐类型：basic-基础版，pro-专业版，enterprise-企业版
     */
    @TableField("plan_type")
    private String planType;

    /**
     * 最大用户数限制
     */
    @TableField("max_users")
    private Integer maxUsers;

    /**
     * 当前用户数
     */
    @TableField("current_users")
    private Integer currentUsers;

    /**
     * 过期时间
     */
    @TableField("expire_time")
    private Date expireTime;

    /**
     * 租户数据库Schema名称
     */
    @TableField("database_name")
    private String databaseName;

    /**
     * 数据库连接配置
     */
    @TableField("database_config")
    private String databaseConfig;

    /**
     * 功能配置（开启的功能模块）
     */
    @TableField("feature_config")
    private String featureConfig;

    /**
     * 租户设置
     */
    @TableField("settings")
    private String settings;

} 